import cv2
import numpy as np
img = cv2.imread("E:\opencv\opencv\sources\samples\data\lena.jpg", cv2.IMREAD_COLOR)
cv2.imshow("image", img)
#平均滤波
blur = cv2.blur(img,(5,5))
#高斯平滑滤波
gauBlur = cv2.GaussianBlur(img,(5,5),0)
#gauBlur1 = cv2.GaussianBlur(img,(5,5),1.5)

#中值滤波
med = cv2.medianBlur(img,3)
cv2.imshow("blur", blur)
cv2.imshow("gauBlur", gauBlur)
cv2.imshow("med", med)
#cv2.imshow("gauBlur2", gauBlur2)

'''
形态学滤波
首先需要定义一个结构元素kernel
可以使用其自带的getStructuringElement函数，也可以直接使用NumPy的ndarray来定义一个结构元素。
cv2.MORPH_CROSS 椭圆结构
cv2.MORPH_ELLIPSE 十字形结构
cv2.MORPH_RECT 矩阵结构
cv2.erode(img,kernel) 腐蚀
cv2.dilate(img,kernel) 膨胀
'''

#kernel = cv2.getStructuriengElement(cv2.MORPH_CROSS,(5,5))

# kernel = np.uint8(np.zeros((5,5)))
# for i in range(5):
# 	kernel[2, i] = 1
# 	kernel[i, 2] = 1

#cv2.MORPH_OPEN 开运算
#cv2.MORPH_CLOSE 闭运算
#mor = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)
#cv2.imshow("mor", mor)
cv2.waitKey(0)